package com.purchase.ml.bean.req.dealer;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.purchase.ml.bean.req.BaseDto;
import com.purchase.ml.consts.Constants;
import com.purchase.ml.entity.dealer.SysAddr;
import com.purchase.ml.entity.dealer.SysDealer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "创建商户model")
public class SysDealerNewDto extends SysDealer implements Serializable { //todo：main: 继承对象只能是PageDto或者不继承

    private Long id; //todo：无需参数
    private Date createAt; //todo：无需参数
    private Date updateAt; //todo：无需参数
    private Long superior;//todo：无需参数
    private String inviteCode;//todo：无需参数
    private Long dealerId;//todo：无需参数

    private Long billingAddrId;//todo：无需参数
    private Long shopAddrId;//todo：无需参数
    private Integer dealerType;//todo：无需参数
    private Integer state;//todo：无需参数
    private Integer isAgent;//todo：无需参数
    /**
     * 经销商名称
     */
    @ApiModelProperty(value = "经销商名称",required = true)
    @NotBlank(message = "Nama dealer tidak boleh kosong")
    private String dealerName;

    /**
     * 经销商名称2
     */
    @ApiModelProperty(value = "经销商名称2")
    private String lastName;

    /**
     * 马来营业执照号码
     */
    @ApiModelProperty(value = "马来营业执照号码",required = true)
    private String syarikatCode;

    /**
     * 注册码
     */
    @ApiModelProperty(value = "注册码",required = true)
    private String registCode;

    /**
     * 电话
     */
    @ApiModelProperty(value = "电话")
    @NotBlank(message = "Nombor telefon tidak boleh kosong")
    private String phoneNumber;

    /**
     * 图片地址
     */
    @ApiModelProperty(value = "图片地址")
    private String logoUrl;

    /**
     * 公司类型：0：Berhad；1：Sdn Bhd 2：Partnership；3：erprise 4：Others
     */
    @ApiModelProperty(value = "公司类型：0：Berhad；1：Sdn Bhd 2：Partnership；3：erprise 4：Others",required = true)
    private Integer typeCompany;

    /**
     * 业务类型
     */
    @ApiModelProperty(value = "业务类型",required = true)
    private String typeBusiness;

    /**
     * 邮箱地址
     */
    @ApiModelProperty(value = "公司注册必须-公司邮箱地址")
    private String emailAddress;

    /**
     * 账单信息
     */
    @ApiModelProperty(value = "账单地址信息",required = true)
    @NotNull(message = "Alamat bil tidak boleh kosong")
    private SysAddr billingAddr;
    /**
     * 收货地址
     */
    @ApiModelProperty(value = "收货地址信息",required = true)
    @NotNull(message = "Alamat penghantaran tidak boleh kosong")
    private SysAddr shopAddr;

    /**
     * 0为经销商申请；1为创建主经销商
     * 申请的需审核，创建的直接通过
     */
    @ApiModelProperty(value = "申请类型：前端固定传0",required = true)
    @NotNull(message = "Cara cipta dealer tidak boleh kosong")
    private Integer newType;

    @ApiModelProperty(value = "01234 分别对应中东西南北",required = true)
    private Integer region;

    @ApiModelProperty(value = "证书地址：或者身份证图片URL",required = true)
    @NotBlank(message = "Sila muat naik gambar")
    private String certificateUrl;

    @ApiModelProperty(value = "个人注册必须-杂费图片URL")
    private String utilityBillUrl;

    @ApiModelProperty(value = "个人注册必须-身份证号码")
    private String idCardNumber;

    @ApiModelProperty(value = "注册密码",required = true)
    @NotBlank(message = "Kata laluan tidak boleh kosong")
    private String registerPwd;

    @ApiModelProperty(value = "公司类型：0公司；1个人",required = true)
    @NotNull(message = "Jenis syarikat tidak boleh kosong")
    private Integer companyType;

    @ApiModelProperty(value = "注册留言")
    private String reasion;

    @ApiModelProperty(value = "登陆邮箱：作为账号Acc")
    @NotBlank(message = "Emel akaun tidak boleh kosong")
    private String loginEmail;

    @ApiModelProperty(value = "主经销商是否需要支付：0不需要；勾选1需要")
    private Integer needPay;

    private static final long serialVersionUID = 1L;
}